package com.lw.common.utils;

import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import java.io.File;
import java.time.LocalDateTime;

@Component
public class CommonUtils {

    @Value("${oss.local.storage-path}")
    private String storagePath;
    /**
     * 获取上传文件的全路径,按照时间分类
     *
     * @param fileName 文件名  自动按照时间归类
     * @return 上传文件的全路径
     * 例如:"E:\storage-path\20250606\0f4dc9154f61414cae3363f411f9fe60.jpeg"
     */
    public String getUploadFullFilePathByTime(String fileName, String folder) {
        if (StrUtils.isEmpty(folder)) {
            folder = DateUtil.format(LocalDateTime.now(), DatePattern.PURE_DATE_PATTERN);
        }
        String filePrefix = storagePath.endsWith(File.separator) ? storagePath : storagePath + File.separator;
        return filePrefix + folder + File.separator + fileName;
    }

    /**
     * 获取上传文件的路径
     *
     * @param fileName 文件名
     * @return 上传文件的路径
     * 例如:"E:\storage-path"
     */
    public String getUploadFilePath(String fileName) {
        String filePrefix = storagePath.endsWith(File.separator) ? storagePath : storagePath + File.separator;
        if (StrUtils.isEmpty(fileName)) {
            return filePrefix;
        }
        return filePrefix + fileName;
    }

    /**
     * 获取上传文件的全路径
     *
     * @param fileName 文件名
     * @return 上传文件的全路径
     * 例如:"E:\storage-path\0f4dc9154f61414cae3363f411f9fe60.jpeg"
     */
    public String getUploadFullFilePath(String fileName) {
        String filePrefix = storagePath.endsWith(File.separator) ? storagePath : storagePath + File.separator;
        return filePrefix + fileName;
    }
}
